Keystone 提供 OpenStack 身份驗證的的服務,它提供了以下功能:
Openstack 的使用者,可以是用戶、系統裡者,當 User 向 OpenStack 訪問時,Keystone 會對其進行驗證,除了只用者之外,OpenStack 會對其它套件建立使用者如:Nova、Glance、Cinder、Neutron、Swift 等等,系統管理者也能對其套件進行管理。
Credentials 是 User 用來證明自己身份的訊息,可以是:
確認使用者身份的流程,OpenStack Identity 服務會確認傳送過來的請求,驗證使用者的身份憑證,這些憑證通常是用戶名稱、密碼、金鑰等等。
字母與數字混合的字串,讓使用者存取 API 資源, token 可以隨時清除,有時間限制
用於劃分 OpenStack 資源例如:儲存、網路、運算資源等等,可以依照公司不同部門,切分不同資源。可以對應到一個帳號或者一個組織
OpenStack 的 Service 包括運算 (Nova)、物件儲存 (Swift)、映像檔服務 (Glance) 、網路 (Neutron) 等。 提供一個或多個 Endpoint,使用者可以訪問資源和執行操作。
Endpoint 是一個網絡上可以存取的網路位址,通常是一個 URL。 Keystone 負責管理和維護每個 Service 的 Endpoint。
定義不同使用者的權限,如:project admin,或者 project usr,不同的 project 不能存取別人的 project,每個 user 可以同時被指定為多個 role 藉以授予系統存取權限
Neutron 提供 OpenStack 網路服務,從 L3 到 L2 層,網路的擴展性,管理者可以針對每個安全性群組定義防火牆規則,更高級別的服務,諸如LBaaS、FWaaS、VPNaaS等。
假設有一個由管理員建立的外部網路,來使 OpenStack 整個網路與網際網路連接,之後租戶可以建立自己私有的內部網路來連接外部網路,要讓內部網路中的虛擬機能夠存取網際網路,就必須建立一個 Router 將內部網路連接到外部網路
下圖可以看到 OpenStack 個元件串接方式
https://www.openstack.org/
https://github.com/OSE-Lab/openstack-ubuntu